package com.kaesun.ufit.tools;

public class ModelList {

	public static final int IDX_SLP = 0;	// Seated Leg Press
	public static final int IDX_LS = 1;		// Leg Squat
	public static final int IDX_HA = 2;		// Hip Adductor
	public static final int IDX_TH = 3;		// Total Hip
	public static final int IDX_SLE = 4;	// Seated Leg Extension
	public static final int IDX_LLC = 5;	// Lying Leg Curl
	public static final int IDX_SLC = 6;	// Seated Leg Curl
	public static final int IDX_RT = 7;		// Rotary Torso
	public static final int IDX_SB = 8;		// Seated Back
	public static final int IDX_AD = 9;		// Abdominal
	public static final int IDX_PRF = 10;	// Pec Reardeltoid Fry
	public static final int IDX_LP = 11;	// Lat Pulldown
	public static final int IDX_BF = 12;	// Butterfly
	public static final int IDX_LM = 13;	// Lat Machine
	public static final int IDX_DP = 14;	// Dipping
	public static final int IDX_IB = 15;	// Incline Biceps
	public static final int IDX_SCP = 16;	// Seated Chest Press
	public static final int IDX_SPR = 17;	// Supported Row
	public static final int IDX_IP = 18;	// Incline Press
	public static final int IDX_SP = 19;	// Shoulder Press
	public static final int IDX_AC = 20;	// Arm Curl
	public static final int IDX_ST = 21;	// Seated Triceps
	public static final int IDX_FO = 22;	// Full Over
	public static final int IDX_TA = 23;	// Total Abdominal
	public static final int IDX_LD = 24;	// Lateral Deltoid
	public static final int IDX_ITOT = 25;	// Inner Thigh Outer Thigh
	public static final int IDX_CP = 26;	// Chest Press
	public static final int IDX_SR = 27;	// Seated Row
	public static final int IDX_LPS = 28;	// Leg Press Squat
	public static final int IDX_CD = 29;	// Chining Dipping

	// ...

	/*public int mMomentumStart;
	public int mMomentumRange;
	public int mBarbelWeight;
	public int mBarbelCount;
	public float mHallGap;
	public int mHallCount;*/

	private static final ModelItem slp  = ModelItem.build(IDX_SLP,  28, "Seated Leg Press",        "UF101B", 1, 1, 10, 14, (float)0.026, 36);
	private static final ModelItem ls   = ModelItem.build(IDX_LS,   28, "Leg Squat",               "UF102",  1, 1, 10, 14, (float)0.026, 36);
	private static final ModelItem ha   = ModelItem.build(IDX_HA,   28, "Hip Adductor",            "UF106",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem th   = ModelItem.build(IDX_TH,   28, "Total Hip",               "UF201",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem sle  = ModelItem.build(IDX_SLE,  24, "Seated Leg Extension",    "UF202",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem llc  = ModelItem.build(IDX_LLC,  28, "Lying Leg Curl",          "UF203B", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem slc  = ModelItem.build(IDX_SLC,  28, "Seated Leg Curl",         "UF203",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem rt   = ModelItem.build(IDX_RT,   28, "Rotary Torso",            "UF204",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem sb   = ModelItem.build(IDX_SB,   28, "Seated Back",             "UF301",  1, 1, 10, 10, (float)0.026, 36);
	private static final ModelItem ad   = ModelItem.build(IDX_AD,   28, "Abdominal",               "UF205A", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem prf  = ModelItem.build(IDX_PRF,  24, "Pec Reardeltoid Fry",     "UF302A", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem lp   = ModelItem.build(IDX_LP,   28, "Lat Pulldown",            "UF303A", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem bf   = ModelItem.build(IDX_BF,   28, "Butterfly",               "UF302B", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem lm   = ModelItem.build(IDX_LM,   28, "Lat Machine",             "UF303B", 1, 1,  5, 16, (float)0.026, 36);
	private static final ModelItem dp   = ModelItem.build(IDX_DP,   28, "Dipping",                 "UF305",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem ib   = ModelItem.build(IDX_IB,   28, "Incline Biceps",          "UF304A", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem scp  = ModelItem.build(IDX_SCP,  24, "Seated Chest Press",      "UF401",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem spr  = ModelItem.build(IDX_SPR,  28, "Supported Row",           "UF406",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem ip   = ModelItem.build(IDX_IP,   28, "Incline Press",           "UF502",  1, 1,  5, 20, (float)0.016, 60);
	private static final ModelItem sp   = ModelItem.build(IDX_SP,   28, "Shoulder Press",          "UF504",  1, 1,  5, 20, (float)0.016, 60);
	private static final ModelItem ac   = ModelItem.build(IDX_AC,   28, "Arm Curl",                "UF304B", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem st   = ModelItem.build(IDX_ST,   28, "Seated Triceps",          "UF403",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem fo   = ModelItem.build(IDX_FO,   28, "Full Over",               "UF404",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem ta   = ModelItem.build(IDX_TA,   28, "Total Abdominal",         "UF205C", 1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem ld   = ModelItem.build(IDX_LD,   28, "Lateral Deltoid",         "UF604",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem itot = ModelItem.build(IDX_ITOT, 22, "Inner Thigh Outer Thigh", "UF106",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem cp   = ModelItem.build(IDX_CP,   28, "Chest Press",             "UF501",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem sr   = ModelItem.build(IDX_SR,   28, "Seated Row",              "UF402",  1, 1,  5, 16, (float)0.016, 60);
	private static final ModelItem lps  = ModelItem.build(IDX_LPS,  28, "Leg Press Squat",         "UF101C", 1, 1, 10, 14, (float)0.026, 36);
	private static final ModelItem cd   = ModelItem.build(IDX_CD,   28, "Chining Dipping",         "UF306",  1, 1, 10, 14, (float)0.026, 60);
	// ...

	private static final ModelItem[] items = {
		slp, ls, ha, th, sle, llc, slc, rt, sb, ad, prf, lp, bf, lm, dp, ib, scp, spr, ip, sp, ac, st, fo, ta, ld, itot, cp, sr, lps, cd
	};


	public static final int itemsLength() {
		return items.length;
	}

	public static final int itemsIdx(int idx) {
		return items[idx].mIdx;
	}

	public static final float itemsNameSize(int idx) {
		return items[idx].mNameSize;
	}

	public static final String itemsName(int idx) {
		return items[idx].mName;
	}

	public static final String itemsNeoId(int idx) {
		return items[idx].mNeoId;
	}

	public static final int itemsMomentumStart(int idx) {
		return items[idx].mMomentumStart;
	}

	public static final int itemsMomentumRange(int idx) {
		return items[idx].mMomentumRange;
	}

	public static final int itemsBarbelWeight(int idx) {
		return items[idx].mBarbelWeight;
	}

	public static final int itemsBarbelCount(int idx) {
		return items[idx].mBarbelCount;
	}

	public static final float itemsHallGap(int idx) {
		return items[idx].mHallGap;
	}

	public static final int itemsHallCount(int idx) {
		return items[idx].mHallCount;
	}
}

class ModelItem {
	public int mIdx;
	public float mNameSize;
	public String mName;
	public String mNeoId;
	public int mMomentumStart;
	public int mMomentumRange;
	public int mBarbelWeight;
	public int mBarbelCount;
	public float mHallGap;
	public int mHallCount;

	ModelItem(int idx, float nameSize, String name, String neoId, int start, int range, int barbelWeight, int barbelCount, float hallGap, int hallCount) {
		mIdx = idx;
		mNameSize = nameSize;
		mName = name;
		mNeoId = neoId;
		mMomentumStart = start;
		mMomentumRange = range;
		mBarbelWeight = barbelWeight;
		mBarbelCount = barbelCount;
		mHallGap = hallGap;
		mHallCount = hallCount;
	}

	public static ModelItem build(int id, float nameSize, String name, String neoId, int min, int max, int barbelWeight, int barbelCount, float hallGap, int hallCount) {
		return new ModelItem(id, nameSize, name, neoId, min, max, barbelWeight, barbelCount, hallGap, hallCount);
	}
}
